Any control system can be thought of as consisting of three blocks. The first block is the monitoring or sensor unit which monitors the environment for specific events or conditions. The monitoring unit may be as simple as a manual switch or as complex as a computer system. The second block is the processing block wherein data from the monitoring devices is assimilated and programming is performed on the data to prepare the system for response to the indicated conditions from the monitoring devices. The third block comprises an output device which receives instructions from the processing unit and responds thereto. The output device may comprise an alarm, microcomputer, relay, etc.
In a fire alarm system for an office building for example, the monitoring devices may comprise "call boxes", "pull down" stations, heat sensors or smoke detectors. The processing unit might comprise a central computer for monitoring and controlling the entire system. The output devices might comprise alarm speakers, bells, sprinklers or, in more complex systems, a CRT screen and a computer for displaying pertinent information about the alarm condition.
The output of the monitoring or sensor unit, may be as simple as a binary Active/Inactive bit or may be a quantized output containing specific information about the conditions at the sensors such as the actual temperature. The sensor's output signal is the input information to the processing unit. The processing unit obtains the input data and performs a predetermined algorithm upon it. The end results of the algorithm are signals to the output devices.
A very small system might have all three blocks contained in the same physical enclosure. However, as the size of the system increases, the number of sensor units and output units increases. Typically in an alarm type system, the number of sensor units will increase at a faster rate than the number of output units.
There are several different methods by which communication between the separate blocks of a large system can be accomplished. One manner would be to have an input line to the processing unit from each sensor and an output line to each output device. This method, however, quickly becomes extremely expensive in terms of wiring cost and in the amount of circuitry or processing ability needed at the processing unit to support the input and output devices. This method would also make it extremely difficult to expand without considerable expense.
A more effective method which has been used in the past is to serially connect the sensor units on a single wire or set of wires. Typically, the processing unit determines the identification of the sensor with which it is communicating based on the position of the sensor in the serial lineup. There are quite a number of methods for preventing the sensors from "talking" simultaneously on the line. The output devices are coupled to the central processing unit in the same serial type connection and communicate therewith in a similar manner. This type of system, however, also has several substantial drawbacks. First, since it is typically only the sensor's position in the serial lineup which allows the processing unit to determine which sensor it is communicating with, complex wiring is required and must be performed perfectly in order for the system to operate. Further, it is cumbersome to add or delete sensors from this type of system because it would require updating of memory tables within the processing unit. Thirdly, in this type of system it is not possible to individually address a specific sensor. Each time a sensor must be monitored, the entire input loop must be read by the microprocessor. Likewise, each time an output unit must be read from or written to, the processing unit must loop through a different programming routine. This seriously diminishes the system response time.
Probably the most effective method of connecting the separate blocks of a control system having a large number of sensor units and output units is by use of an address and/or data bus. In this type of system, all sensor units and output units can be coupled to a single bus and communicate with the processing unit thereover. Each sensor unit and output unit is assigned a unique address which is sent to or from the processing unit in combination with data so as to earmark any communications for the desired sensor or output device to which it is directed. A device detecting its address can then read in the data and respond thereto while the remaining devices will not interfere with the communications of the bus between the accessed device and the processing unit.
Although more effective than the separate wiring scheme or serial scheme discussed above, the address bus method still has several drawbacks relating to the addressability of each sensor. The problems fall into two categories; (1) the need to provide some method to set the addresses of the sensors, and (2) the need for a substantial amount of intelligence at the sensor to handle the addressing protocol.
In relation to the first problem, the most inexpensive manner of setting an address for each sensor interface is to provide thin traces or jumpers on the printed circuit board etch. The traces can be cut into the PC thereby setting the address. The disadvantages of this technique, however, include the fact that the pattern of jumpers to support a large number of addresses becomes very confusing to the installer. Further, it is very difficult to correct a mistake or change a device address at a later date.
Another method which eliminates the problems related to the use of printed circuit board etching comprises replacing the jumpers with a DIP switch or an encoded switch. The switch allows the address to be easily set or changed. The encoding of the switch would provide a decimal visual indication to the installer, rather than the binary code of the DIP switch. However, switches are not inexpensive and are subject to vibration, oxidation, corrosion and tampering, all of which can undesirably change the sensor's address. Further, the switches are physically large.
Another alternative would be to use a fusable link PROM (programmable read only memory) or an EPROM (erasable programmable read only memory) to hold the address. These devices would be mounted on the circuit board associated with the sensor in a manner so that they could be easily removed in order to allow reprogramming and/or verification of the device. If and when it becomes necessary to change an address of a device, in the case of a PROM, it would have to be discarded and replaced with a new one. An EPROM on the other hand would have to be removed, erased, reprogrammed, and then replaced on the circuit board. An EEPROM (electrically erasable programmable read only memory) may also be used in a similar fashion to an EPROM.
As stated, intelligence must be supplied at the sensor and output devices to handle the addressing. The earliest methods of providing a sensor with the intelligence necessary to recognize when it was being addressed involved very complex state machines. A state machine would be designed using dozens of electronic components which would determine when one addressing sequence had finished and synchronize itself for a subsequent addressing sequence. The state machine would then compare the address transmitted over the bus with the address set on the jumpers, switches or PROM. If the address matched, it would then transfer control to another hardware section which would output the data requested from the sensor by the processing unit. More recently, the state machine has been replaced in the sensors by a custom made chip having the dozens of component embodied therein.
Another alternative along the same lines is to provide a general purpose microcontroller at each sensor which can be used, along with a specific software algorithm, to handle the addressing protocol.
In all of the situations discussed above (discrete hardware, custom chip, microcontroller), local intelligence must be provided at the sensor in order to enable the sensor to handle the addressing protocol of the control system. All of these methods require additional components for handling the address setting and addressing protocol. These components also consume additional power.
Therefore, it is an object of the present invention to provide an improved control system.
It is a further object of the present invention to provide a control system capable of handling a large number of both sensor units and output units with minimal intelligence at the sensor units and output units.